
namespace graver
{
    /// <summary>
    /// Token
    /// </summary>
    public class SyntaxToken : SyntaxNode
    {
        public SyntaxToken(SyntaxKind kind, int position, string text, object value)
        {
            Kind = kind;
            Position = position;
            Text = text;
            Value = value;

        }

        /// <summary>
        /// Token 类型
        /// </summary>
        /// <value>Token 类型</value>
        /// public override SyntaxKind Kind { get; }
        /// <summary>
        /// 位置
        /// </summary>
        /// <value>位置</value>
        public int Position { get; }
        /// <summary>
        /// 当前 Token 所在字符串
        /// </summary>
        /// <value>Token 字符串</value>
        public string Text { get; }
        /// <summary>
        /// Token 值
        /// </summary>
        /// <value>Token 值</value>
        public object Value { get; }

        public override SyntaxKind Kind { get; }


        public override IEnumerable<SyntaxNode> GetChildren()
        {
            return Enumerable.Empty<SyntaxNode>();
        }

    }
}





